package com.swiot.biz.service;

import java.util.HashMap;
import java.util.List;

import com.swiot.biz.domain.DynamicTemplateData;
import com.swiot.biz.domain.TemplateData;

/**
 * 模板数据Service接口
 * 
 * @author kingdom
 * @date 2025-09-04
 */
public interface ITemplateDataService 
{
    /**
     * 查询模板数据
     * 
     * @param id 模板数据主键
     * @return 模板数据
     */
    public TemplateData selectTemplateDataById(String id);
    public TemplateData selectTemplateDataSimpleById(String id);

    /**
     * 查询模板数据列表
     * 
     * @param templateData 模板数据
     * @return 模板数据集合
     */
    public List<TemplateData> selectTemplateDataList(TemplateData templateData);
    public List<TemplateData> selectTemplateDataPageList(TemplateData templateData);

    /**
     * 查询模板数据总和
     *
     * @param templateId
     * @param year 年份
     * @return
     */
    public HashMap<String, Object> queryTemplateDataSum(String templateId, String year);

    /**
     * 新增模板数据
     * 
     * @param templateData 模板数据
     * @return 结果
     */
    public int insertTemplateData(TemplateData templateData);

    /**
     * 修改模板数据
     * 
     * @param templateData 模板数据
     * @return 结果
     */
    public int updateTemplateData(TemplateData templateData);

    /**
     * 批量删除模板数据
     * 
     * @param ids 需要删除的模板数据主键集合
     * @return 结果
     */
    public int deleteTemplateDataByIds(String[] ids);

    /**
     * 删除模板数据信息
     * 
     * @param id 模板数据主键
     * @return 结果
     */
    public int deleteTemplateDataById(String id);

    /**
     * 检查是否存在相同的模板数据
     * 
     * @param templateId 模板ID
     * @param reportDate 报表日期
     * @param deptId 公司ID
     * @return 模板数据
     */
    public TemplateData selectTemplateDataByUnique(String templateId, String reportDate, Long deptId);

    /**
     * 发布模板数据
     * 
     * @param id 模板数据主键
     * @return 结果
     */
    public int publishTemplateData(String id);

    /**
     * 撤销模板数据
     * 
     * @param id 模板数据主键
     * @return 结果
     */
    public int unpublishTemplateData(String id);
}
